import Vue from 'vue'

// 全局混入缓存逻辑、重置导航栏逻辑
Vue.mixin({
  data() {
    return {
      needCacheToPathList: [] // 去新页面后，旧页面需要缓存的新页面的路径数据
    }
  },
  beforeRouteEnter(to, from, next) {
    next(vm => {
      // 缓存当前组件
      vm.$store.commit('base/ADD_CACHE_PAGE', vm.$options.name)
    })
  },
  beforeRouteLeave(to, from, next) {
    // 如果导航栏配置数组不为空，重置导航栏数据
    this.$store.state.base.navOption.length !== 0 && this.$hideOptionMenu()
    // 如果要去的页面路径不在 【去新页面后，旧页面需要缓存的新页面的路径数据】 数据中，清除当前页面缓存
    !this.needCacheToPathList.includes(to.path) && this.$store.commit('base/REMOVE_CACHE_PAGE', this.$options.name)
    next()
  }
})
